package com.soywer.rpc.rpc01;

import java.io.ByteArrayOutputStream;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.net.Socket;

import com.soywer.rpc.common.User;

/**
 * 功能描述：
 * 客户端创建一个socket连接服务端，发送请求给服务端，并获取服务端返回的数据，输出展示
 *
 * 缺点：客户端的调用者需要完成socket底层实现，使用起来极其不便捷
 * @author 18065916_李猛
 * @since 2021/3/8
 */
public class Client {
    public static void main(String[] args) throws Exception{
        Socket s = new Socket("127.0.0.1",8888);
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        DataOutputStream dos = new DataOutputStream(baos);
        dos.writeInt(123);

        s.getOutputStream().write(baos.toByteArray());
        s.getOutputStream().flush();

        DataInputStream dis = new DataInputStream(s.getInputStream());
        int id = dis.readInt();
        String name = dis.readUTF();
        User user = new User(id , name);
        System.out.println(user);

        dos.close();
        s.close();
    }
}
